আমরা সবাই কম-বেশি এলজেবরার সাথে পরিচিত। বুলিয়ান এলজেবরা একটি ভিন্ন ধরনের এলক্ষেরা যেখানে শুধু 0 এবং 1 এর সেট {0, 1] নিয়ে কাজ করা হয়। প্রথমে দেখে মনে হতে পারে যে এলজেবরার প্রক্রিয়ায় এবং তার ফলাফলে 0 কিংবা 1 এর বাইরে কিছুই হতে পারবে না, সেটি আমাদের কী কাজে লাগবে? কিন্তু বিস্ময়ের ব্যাপার হচ্ছে ডিজিটাল ইলেক্ট্রনিজের পুরো জগৎটি ৰুলিয়ান এলজেবরাকে ভিত্তি করে গড়ে উঠেছে।
বুলিয়ান এলজেবরায় মাত্র তিনটি প্রক্রিয়া (operation) করা হয়। সেগুলো হচ্ছে পুরক (Complement), গুণ (Multiply) এবং যোগ (Add)। যেহেতু সকল প্রক্রিয়া করা হবে 0 এবং 1 দিয়ে কাজেই, এই তিনটি প্রক্রিয়াও খুবই সহজ। সেগুলো এরকম : বুলিয়ান পুরুফ : 0 এর পূরক 1 এবং 1 -এর পুরক লেখা হয় এভাৰে : 0 = 1 এবং 1 = 0
বুলিয়ান পুশ 0.0 = 0, 10 = 0, 0.1= 0, 11 = 1
বুলিয়ান যোগ : 0+00, 0+11, 1+01 এবং 1+1=1
আমরা দেখতে পাচ্ছি উপরে দেখানো এলজেবরার নিয়মগুলোর ভেতর শুধু 1 + 1 = 1 এই যোগটি আমাদের প্রচলিত ধারণার সাথে মিলে না (কিন্তু যেহেতু আমরা শুধু 10, 1] সেট নিয়ে কাজ করছি এখানে অন্য কিছু বসানোরও সুযোগ নেই। শুধু তাই নয় বুশিয়ান এলজেবরার প্রক্রিয়াগুলো লেখার সময় আমরা যদিও এবং 1. এই দুটি সংখ্যা লিখছি কিন্তু মনে রাখতে হবে এই দুটি আসলে সংখ্যা নয়, এই দুটি হচ্ছে দুটি ভিন্ন অবস্থা। যেরকম 0 এবং 1 ইলেক্ট্রনিক সার্কিটে দুটি ভিন্ন ভিন্ন ডোস্টেজ (ov এবং 5 v) হতে পারে, অপটিকেল ফাইবারে আলোহীন এবং আলোযুক্ত অবস্থা হতে পারে কিংবা লজিকের মিথ্যা (False বা F} এবং সভ্য (True কিংবা T) হতে পারে।
বুলিয়ান এলজেবরা করার সময় সবার প্রথম পুরক ভারগর গুণ এবং সবশেষে যোগ করতে হয়। তবে পাশাপাশি অসংখ্য প্রক্রিয়া থাকলে ব্র্যাকেট ব্যবহার করে বিভ্রান্তি কমিয়ে রাখা ভালো। কোনো বিভ্রান্তির সুযোগ না থাকলে xy কে xy হিসেবে লেখা যায়।
আমাদের প্রচলিত এলজেবরার মতোই বুলিয়ান এলজেবরার বেশ কিছু উপপাদ্য রয়েছে। এর মাঝে পুরুত্বপূর্ণ কয়েকটি নিচে দেখানো হলো। বুলিয়ান এলজেবরা যেহেতু [0, 1] সেট দিয়ে তৈরি তাই চলকের (Variable) মান একবার 0 এবং আরেকবার 1 বসিয়ে এই উপপাদ্যগুলো খুবই সহজেই প্রমাণ করা যায়।
এখানে বেশ কিছু উপপাদ্য আমাদের পরিচিত এলজেবরার সাথে সম্পত্তিপূর্ণ আবার বেশ কিছু উপপাদ্যের পরিচিত উপপাদ্যের সাথে মিল নেই।
x.x = 0
উদাহরণ : বিভাজন উপপাछx + y2 = (x + y) (x + 2) টি প্রমাণ কর।
উত্তর : ডানদিক (x + y) (x + 2)
= xx + xz + yx + yz
= x + xz + yx + yz Idempotent x.x = x
= x(1+ z) + yx + yz
= x + yx + yz
Domination 1+ z = 1
= x(1 + y) + yz
= x + yz
Domination 1. 1 + y = 1
= বাম দিক (প্রমাণি)
উদাহরণ : ডি মরগানের উপপাদ্য দুটি প্রতি ক্ষেত্রের জন্য মান বসিয়ে প্রমাণ কর ।
উত্তর : এখানে যেহেতু x এবং y দুটি চলক রয়েছে, দুটিরই মান হওয়া সম্ভব 0 এবং 1 কাজেই সর্বমোট ২৭ বা চারটি ভিন্ন মান হওয়া সম্ভব। প্রত্যেকটির জন্য আলাদাভাবে দেখা যেতে পারে।
নিজে কর : বুলিয়ান এলজেবরার ভেতর কোন কোন উপপাদ্যগুলো আমাদের পরিচিত এলজেবরার উপপাদ্য থেকে ভিন্ন। (Hint : চলক x, y, z এর জন্য 0 এবং 1 -এর বাইরে কোনো মান বসানো হলে যেগুলো কাজ করে না সেগুলো পরিচিত এলজেবরার উপপাদ্য থেকে ভিন্ন।)
আমাদের পরিচিত সাধারণ এলজেবরায় আমরা যেরকম বেশ কিছু চলক ব্যবহার করে অন্য আরেকটি বড় এক্সপ্রেশন তৈরি করতে পারি, বুলিয়ান এলজেবরার বেলাতেও সেটা সত্যি। সাধারণ এলজেবরার মতো বুলিয়ান এলক্ষেরাতেও আমরা বুলিয়ান উপপাদ্যগুলো ব্যবহার করে সেগুলো অনেক সরল করে ফেলতে পারি। যেমন ধরা যাক x, y এবং z এই তিনটি চলক ব্যবহার করে নিচের এক্সপ্রেশনটি লেখা হয়েছে :
xyz + xy + x
এটাকে আমরা এভাবে সরল রুপ দিতে পারি :
xyz + xy + x = xy ( 2 + 1 ) + x = xy + x = x y + 1) = x
এটাকে সরল করার জন্য আমরা domination উপপাদ্য 2 + 1 = 1 এবং y + 1 = 1 ব্যবহার করেছি।
: xyz + x 77 + xyz + xyz এক্সপ্রেশনটিকে সরল করা।
: xyz + xyz + xyz + xyz
= xz(y + y) +xz (y+y)
= x2 + x 2 যেহেতু (y + y) = 1
= 2 (x + x)
= 2 যেহেতু (x + x) = 1
আমরা যখন ডিজিটাল ইলেকট্রনিক্সের শুরুতে নানা ধরনের পেট নিয়ে আলোচনা করব তখন দেখব বুলিয়ান এলজেবরার এভাবে একটি বড় এবং জটিল এক্সপ্রেশনকে সরল করতে পারলে একটি জটিল সার্কিটকে অনেক ছোট করে ফেলা যায়।
1নং টেবিলে বেশ কিছু উপপাদ্য রয়েছে, এদের ভেতর থেকে ডি মরগান উপপাদ্যটিকে আলাদাভাবে বিবেচনা করা দরকার। বুলিয়ান এলজেবরার শুরুতে বলা হয়েছিল যে এখানে তিনটি প্রক্রিয়া করা হয়, পরিপূরক, গুণ এবং যোগ। আমরা ডি মরগান সূত্রটিতে দেখতে পাই দুটি চলকের যোগকে পরিপুরক করা হলে সেটি পূরক চলকের গুণ হিসেবে লেখা যায়। অর্থাৎ যোগকে গুণ দিয়ে প্রকাশ করা যায়।
x + y
= x.7
এই উপপাদ্যের একটি সুদূরপ্রসারী প্রভাব রয়েছে। যেহেতু পরিপুরক প্রক্রিয়া প্রয়োগ করে যেকোনো যোগকে গুণ হিসেবে প্রকাশ করা যায় তাই আমরা ইচ্ছে করলেই বলতে পারি, বুলিয়ান এলজেবরাতে মৌলিক প্রক্রিয়া
তিনটি নয়- দুইটি। পরিপুরক এবং গুণ। আবার আমরা যদি দ্বিতীয় ডি মরগান সুত্রটি ব্যবহার করি তাহলে পরিপুরক যেকোনো গুণকে আমরা যোগ
দিয়ে পাল্টে দিতে পারব। অর্থাৎ
x. y = x + y
কাজেই একইভাবে আমরা বলতে পারি বুলিয়ান এলজেবরাতে প্রক্রিয়া তিনটি নয়, প্রক্রিয়া দুটি অর্থাৎ পরিপূরক এবং যোগ। অর্থাৎ আমরা দেখতে পাচ্ছি বুলিয়ান এলজেবরাতে মৌলিক প্রক্রিয়া দুইটি, পরিপূরক গু গুণ কিংবা পরিপুরক ও যোগ।
: Domination উপপাদ্য x + 1 = 1 কে গুন দিয়ে প্রকাশ করা। উত্তর:x + 1 = 1
দুইপাশে পরিপূরক করে আমরা লিখতে পারি, x + 1 =
ডি মরগান উপপাদ্য ব্যবহার করে x 1 = 1 কিংবা x 0 = 0 (যেহেতু 1 = 0 )
X কে যদি আমরা অন্য একটি চলক y দিয়ে প্রতিস্থাপন করি : J. 0 = 0 যেটি Domination উপপাদ্যের দ্বিতীয় সূত্রটি।
e: Domination উপপাদ্য x 0 = 0 যোগ দিয়ে প্রকাশ কর।
উত্তর : দুই পাশে পরিপূরক নিয়ে : x 0 = 0
ডি মরগান উপপাদ্য ব্যবহার করে x +0 = 0
x + 1 = 1 (সেহেতু 1) =
যদিকে আমরা জন্য একটি চলক y দিয়ে প্রতিস্থাপন করি :
y + 1 = 1 যেটি Domination উপপাদ্যের প্রথম সূত্রটি।
দুইয়ের অধিক চলকের জন্য ডি মরগান উপপাদ্য যদিও ডি মরগান উপপাদ্যটি x ও y দুটি চলকের জন্য দেখানো হয়েছিল কিন্তু এটি আসলে দুইয়ের অধিক যে
কোনো সংখ্যক চলকের জন্য সত্যি। অর্থাৎ ডি মরগান সূত্রের ব্যাপক গ্রুপ দুইটি হচ্ছে :
X1 + 2 + 3 ...Xn = X1.X2.X3... Xn X1.X2.X3 ...Xn = 1 + 2 + 3 .....
নিজে কর : X1 + x2 = x1.X2 হলে প্রমাণ কর X1 + 2 + 3 ...Xn = = X1.X2X3... Xn
R: X1+X2 + xX3 ... Xn = X1 + (x2 + x3 ... Xn) X1.(x2 + X3 ... Xn) =
নিজে কর : 12 = 1 + x2 হলে প্রমাণ কর X1.X2.X3 ...Xn = 1 + 2 + 3 Xn
বুলিয়ান এলজেবরার পরিপূরক, যোগ এবং গুণ, এই তিনটি প্রক্রিয়াকে আমরা তিনটি সারণী বা টেবিল আকারেও লিখতে পারি। x এবং y যদি দুটি বুলিয়ান চলক হয় যেগুলো শুধু 0 এবং 1 এই দুটি মান পেতে পারে তাহলে কোন মানের জন্য কোন প্রক্রিয়ায় কোন ফলাফল পাওয়া যাবে সেটি আমরা এভাবে লিখতে পারি।
একটি বিশেষ প্রক্রিয়ায় কোন ইনপুটের জন্য কোন আউটপুট পাওয়া যায় সেটি যদি একটি সারণী বা টেবিল দিয়ে পুরোপুরিভাবে প্রকাশ করা হয় সেটাকে সত্যক সারণী বা টুথ টেবিল বলা হয়। উপরের সত্যক সারণী থেকে আমরা দেখতে পাচ্ছি যদি একটি চলক (x) থাকে তাহলে সত্যক সারণী দুটি ভিন্ন ভিন্ন ইনপুট থাকে। চলকের সংখ্যা যদি দুটি হয় তাহলে ইনপুটের সংখ্যা হয় 22 = 4টি চলকের সংখ্যা যদি হয় তাহলে ইনপুটের সংখ্যা হয় 2" টি।
x. (1 + 2 ) বুলিয়ান ফাংশনটির সত্যক সারণী লিখ।
উত্তর : নিচে দেখানো হলো।
এই অধ্যায়ের শুরুতে বলা হয়েছিল যে ৰুলিয়ান এলজেবরা হচ্ছে ডিজিটাল ইলেকট্রনিক্সের ভিত্তি- বিষয়টি কীভাবে ঘটে সেটি এখানে আলোচনা করা হবে। বুলিয়ান এলজেবরার যে প্রক্রিয়াগুলোর কথা বলা হয়েছিল (পরিপুরক, গুণ এবং যোগ) সেগুলো বাস্তবায়ন করার জন্য ইলেকট্রনিক গেট তৈরি করা হয়। অর্থাৎ বে ইলেকট্রনিক ডিভাইস দিয়ে লজিক বাস্তবায়ন করা যায় সেগুলোকে গেট বলে। বুলিয়ান এলজেবরায় ইনপুট এবং আউটপুট দুটি সংখ্যা (0,1) দিয়ে প্রকাশ করা হয়েছিল। ডিজিটাল ইলেকট্রনিক্সে সেগুলো দুটি ফোল্টেজ দিয়ে বাস্তবায়ন করা হয়। ব্যবহারের প্রয়োজনের উপর নির্ভর করে নানা ধরনের কাজের জন্য নানা ধরনের ভোল্টেজ নির্ধারণ করে দেওয়া আছে।
NOT
AND
OR
বুলিয়ান এনজেবরা তিনটি প্রক্রিয়াকে বাস্তবায়ন করা ন্য যে তিনটি ইলেকট্রনিক গেট বা লজিক গেট ব্যবহার করা হয়। তা 3.2 চিত্রে দেখানো হলো। এখানে পরিপূরক প্রক্রিয়াটির জন্য NOT গেট, গুণ করার জন্য AND এবং যোগ করার জন্য OR পেট। আমরা ছবিতে পরিপুরক গুণ এবং যোগ করার জন্য যে সত্যক সারণী তৈরি করেছিলাম সেগুলোর দিকে তাকালেই এই নতুন নামকরণের যৌক্তিকতা বুঝতে পারৰ। NOT গেছটি একটি ইনপুটের বিপরীত অবস্থান তৈরি করে। AND গেটের আউটপুট 1 হওয়ার জন্য প্রথম এবং দ্বিতীয় দুটি ইনপুটকেই 1 হতে হয়। OR গেটের আউটপুট 1 হওয়ার জন্য প্রথম অথবা দ্বিতীয় যে কোনোটি অথবা দুটিই 1 হতে হয়। আমরা এই গেটগুলোকে মৌলিক গেট ৰলি কারণ এই তিনটি গেট ব্যবহার করে আমরা যে কোনো জটিল ডিজিটাল ইলেকট্রনিক্স গড়ে ভুলতে পারব।
আমরা যদিও দুই ইনপুটের AND এবং OR গেটের কথা বলেছি কিন্তু দুই থেকে বেশি ইনপুটের AND এবং OR গেট রয়েছে। শুধু তাই নয়, ইচ্ছে করলে আমরা দুই গেটের লজিক গেট ব্যবহার করেই দুই থেকে বেশি ইনপুটের লজিক পেট তৈরি করতে পারব।
এবারে আমরা NOT, AND ও OR গেটগুলো ব্যবহার করে নানা ধরনের সার্কিট তৈরি করে এর ব্যবহারটি শিখে নেব।
উদাহরণ: নিচে দেখানো সার্কিটের ইনপুট দুটি যদি 1 হয় তাহলে আউটপুট কী হবে? একই সার্কিটে আমরা যদি নির্দিষ্ট মান না দিয়ে ইনপুট দুটিকে x এবং y বলি তাহলে আউটপুট কী? উত্তর: নিচের ছবিতে দেখানো হলো।
উদাহরণ : X( + 2) সার্কিটটির সত্যক সারণী তৈরি করা। উত্তর: নিচের টেবিলে দেখানো হলো।
উদাহরণ : তিনজনের ভিতর কমপক্ষে দুইজন “হ্যাঁ” ভোট দিলে ভোটে বিজয়ী বিবেচনা করা হবে এরকম একটি সার্কিট তৈরি কর।
উত্তর : পাশের ছবিতে দেখানো হলো।
পরীক্ষা করে দেখ সত্যি সত্যি তিনটির ভেতর কমপক্ষে দুটো যদি 1 হয় তাহলে আউটপুট 1.
উদাহরণ : ধরা যাক তুমি একটি ঘরের আলো দুটি ভিন্ন ভিন্ন সুইচ দিয়ে নিয়ন্ত্রণ করতে চাও। অর্থাৎ আলো জ্বালানো থাকলে যে কোনো একটি সুইচ দিয়ে আলোটা নেভাতে পারবে আবার আলো নেভানো থাকলে যে কোনো একটি সুইচ দিয়ে সেটি দিয়ে জ্বালাতে পারবে।
উত্তর : মনে করি সুইচ দুটি হচ্ছে একটা সার্কিটের দুটি ইনপুট x এবং y, যখন x কিংবা y এর মান 1 তখন সুইচটি অন অবস্থায় আছে এবং যখন মান ০ তখন অফ অবস্থায় আছে। যেহেতু মাত্র দুইটি সুইচ কাজেই আমাদের মাত্র চারটি অবস্থানের জন্য আউটপুট Q বের করতে হবে। আলোটি আমরা Q আউটপুট দিয়ে প্রকাশ করতে পারি অর্থাৎ যখন Q এর মান 1 তখন আলোটি জ্বলবে যখন Q এর মান ০ তখন আলেটি নিভে যাবে। যখন দুটি সুইচই অফ, ধরা যাক তখন আলোটি জ্বলছে, অর্থাৎ x = 0, y = 0 এবং Q = 1 এটি হবে সত্যক সারণির প্রথম অবস্থান। এখান থেকে শুরু করে আমরা অন্য অবস্থাগুলো বের করতে পারব। এই অবস্থান থেকে যদি যে কোনো একটি সুইচ পরিবর্তন করতে চাই তাহলে সেটা হওয়া সম্ভব : x = 0, y = 1 কিংবা x = 1, y = 0 এবং তখন Q = 0 হতে হবে (অর্থাৎ আলোটি নিভে যেতে হবে।) আমরা সত্যক সারণির আরো দুইটি তথ্য পেয়ে গেছি। সত্যক সারণির শেষ অবস্থান x = 1, y = 1, এই অবস্থানে পৌঁছাতে হলে যেহেতু x = 0, y = 1 কিংবা x = 1, y = 0 অবস্থানের একটি সুইচের পরিবর্তন করতে হবে, কাজেই Q-এর মানও ০ থেকে 1 হতে হবে। 3.5 নং চিত্রে এই লাইট কন্ট্রোল সিস্টেমের টুথ টেবিল এবং নিচের ছবিতে এটি বাস্তবায়ন করার জন্য প্রয়োজনীয় সার্কিটটি দেখানো হয় ।
সর্বজনীন গেট আলোচনা করার আগে আমাদের NAND এবং NOR গেটের সাথে পরিচিত হতে হবে। এই গেট দুটির নাম থেকেই বোঝা যাচ্ছে যে NAND গেট হচ্ছে NOT AND বা AND গেটের আউটপুটের NOT। অর্থাৎ একটি AND গেটের আউটপুটটি একটি NOT গেট দিয়ে রূপান্তরিত করে নিলে NAND গেটের আউটপুট পাওয়া যায়। 3.6 চিত্রে NAND গেটের সত্যক সারণী, প্রতীক এবং লজিকেল রূপটি দেখানো হলো।
একইভাবে NOR গেট হচ্ছে OR গেটের আউটপুটকে NOT গেট দিয়ে পরিবর্তিত করা রূপ। তার সত্যক সারণী প্রতীক এবং লজিক গেটের রূপটি 3.7 চিত্রে দেখানো হলো।
বুলিয়ান এলজেবরার পরিপূরক, যোগ ও গুণ এই তিনটি প্রক্রিয়া রয়েছে। ডি মরগান সূত্র ব্যবহার করে দেখানো হয়েছিল যে পরিপূরক ও যোগ কিংবা পরিপূরক ও গুণ এরকম দুটি প্রক্রিয়া দিয়েই বুলিয়ান এলজেবরার যে কোনো প্রক্রিয়া করা সম্ভব। কাজেই আমরা বলতে পারি ডিজিটাল ইলেকট্রনিক্সের যেকোনো সার্কিট তিনটি ভিন্ন ভিন্ন লজিক গেটের পরিবর্তে দুটি গেট দিয়ে বাস্তবায়ন সম্ভব। সেই দুটি গেট হচ্ছে NOT এবং AND অথবা NOT এবং OR যেহেতু শুধু NAND গেট দিয়ে NOT এবং AND দুটি গেইট তৈরি করা সম্ভব আবার শুধু NOR গেট দিয়েই NOT এবং OR গেট তৈরি করা সম্ভব তাই আমরা NAND এবং NOR গেটকে
সর্বজনীন (Universal) গেট বলে থাকি। পাশের ছবিতে শুধু NAND গেট ব্যবহার করে NOT গেইট এবং AND গেট তৈরি করা এবং শুধু NOR গেট
ব্যবহার করে NOT গেট এবং OR গেট তৈরি করার পদ্ধতি দেখানো হলো।
X
xy
X
আমরা NAND গেট দিয়ে AND গেট এবং NOR গেট দিয়ে OR গেট তৈরি করা দেখিয়েছি।
এখন আমরা উল্টোটা দেখাব, অর্থাৎ NAND গেট দিয়ে OR গেট এবং NOR গেট দিয়ে AND গেট তৈরি করা দেখাব।
এবারে আমরা শুধু NAND অথবা শুধু NOR গেট দিয়ে যে কোনো একটি সার্কিট তৈরি করে সর্বজনীন গেটের গুরুত্বটি দেখাব।
: x y + xy সার্কিটটি শুধু NAND গেট এবং শুধু NOR গেট দিয়ে তৈরি কর।
: NAND NOR গেট দিয়ে তৈরি সার্কিট দুটির দিকে তাকিয়ে বুঝতে পারছ যে একই সার্কিট ভিন্ন ভিন্নভাবে তৈরি করা সম্ভব। কোনো সার্কিটে হয়তো বেশি গেটের প্রয়োজন হয় আবার কোনো সার্কিটে কম পেটের প্রয়োজন হয়। যত্ন করে সার্কিট তৈরি করার সময় সব সময় চেষ্টা করে অল্প গেট ব্যবহার করে বুদ্ধিসম্মত্ত সার্কিট তৈরি করা।
নিজে কর : পাশের ছবিটি কোন বুলিয়ান উপপাদ্য?
ডিজিটাল ইলেকট্রনিক্সের নানা ধরনের সার্কিটে অনেক সময়েই আমাদের বাইনারি সংখ্যা যোগ-বিয়োগ
করতে হয়। এক বিটের বাইনারি যোগ এরকম :
1 এর সঙ্গে 1 -এর যোগফলে দুটি বিট এসেছে, এখানে ডানপাশের বিটটিকে আমরা যোগফল এবং বামপাশের বিটটিকে বলতে পার ক্যারি। ক্যারি বিটটি নিয়ে আমরা আপাতত মাথা না ঘামিয়ে শুধু যোগফলের X বিটটি নিয়ে আলোচনা করি। আমরা দেখেছি Y বুলিয়ানের যোগটিতে 1+1 করে আমরা ০ পাই না, 1 পাই। কাজেই বুলিয়ানের যোগ করার লজিক গেট AND কে আমরা বাইনারি যোগে ব্যবহার করতে পারি না। বাইনারির যোগে ব্যবহার করার জন্য Exclusive OR বা সংক্ষেপে XOR নামে আরেকটি লজিক গেট ব্যবহার করা হয়। এই গেটের সত্যক সারণী এবং প্রতীক 3.12 চিত্রে দেখানো হলো। সহজভাবে বলা যায় XOR গেটে ইনপুট দুটি ভিন্ন হলে আউটপুট 1, তা না হলে আউটপুট । XOR পেটের লজিক xy + xy, তোমরা এটা পরীক্ষা করে নিশ্চিত হয়ে নাও।
ডিজিটাল ইলেকট্রনিক্সে ব্যবহার করার জন্য XOR গেট আলাদাভাবে পাওয়া যায়। তবে আমরা ইচ্ছে করলে মৌলিক পেটগুলো ব্যবহার করেও XOR -এর লজিক বাস্তবায়ন করতে পারি। প্রয়োজনীয় কোনো গেট তৈরি করা হলে সাধারণত তার NOT গেটটিও তৈরি করা হয়। সেই হিসেবে গেটটি বহুল ব্যবহৃত | XOR গেটের আউটপুটটির পর একটি NOT গেট বসিয়ে XNOR তৈরি করা সম্ভব হলেও গেটের সংখ্যা কমানোর জন্য পাশের ছবিতে দেখানো উপায়ে এই লজিকটি পাওয়া সম্ভব।
যেহেতু NAND এবং NOR গেট সর্বজনীন গেট কাজেই মৌলিক গেট ব্যবহার না করে শুধু NAND অথবা শুধু NOR গেট ব্যবহার করে XOR অথবা XNOR লজিক বাস্তবায়ন করা সম্ভব। সর্বজনীন গেট ব্যবহার করে AND বা OR গেট বাস্তবায়নের সময় পদ্ধতিটি y না দেখিয়ে সরাসরি উত্তরটি দেখানো হয়েছিল। এবারে আমরা NAND এবং NOR গেট ব্যবহারের পদ্ধতিটি দেখিয়ে তার জন্য প্রয়োজনীয় সার্কিট তৈরি করব।
উদাহরণ : শুধু NAND এবং NOR গেট ব্যবহার করে XOR তৈরি কর । উত্তর : আমরা জানি XOR গেটের লজিক XY + Xy শুধু NAND গেট দিয়ে এই শক্ষিক তৈরি করতে হলে ডি মরগান সূত্র ব্যবহার করে বুলিয়ান যোগ (+) কে বুলিয়ান গুণে (.) পাল্টে X নিতে হবে। যেহেতু দুইবার পরিপুরক y করা হলে লজিকের পরিবর্তন হয় না। তাই আমরা লিখতে পারি :
xy + xy (xy + xy) = দ্বৈত পরিপুরক ডি মরগান সূত্র ব্যবহার করে যোগকে পুণ দিয়ে প্রতিস্থাপন করা হলে সেটি হবে:
একইভাবে শুধু NOR ব্যবহার করে XOR তৈরি করতে হলে xy এবং xy এর ভেতরকার বুলিয়ান পুণকে ডি মরগান সুত্র ব্যবহার করে যোগে রূপান্তর করতে হবে।
xy + Xy = (xy) + (xy) দ্বৈত পরিপুরক
= x + 7 + 7 + y ডি মরগান সূত্র
x + y + x + y
এবারে সার্কিটটি এঁকে ফেলা যাবে। (চিত্র 3.14)
উ : শুধু NAND এবং NOR ব্যবহার করে XNOR তৈরি কর।
উ : আমরা আগের উদাহরণের প্রক্রিয়ার শুধু NAND ব্যবহার করে XINOR তৈরি করতে পারি। XNOR এর লজিক হচ্ছে : xy + xy অপরিবর্তিত রেখে দ্বৈত পরিপুরক করা হলে আমরা পাই :
xy + xy = xy + y
পরিপুরক
এবারে ডি মরগান সুত্র ব্যবহার করে যোগকে গুণে রূপাত্তর করতে হবে।
xy.xy ডি মরগান সূত্র
এখন সার্কিটটা এঁকে ফেলা যাবে।
(চিত্র 3.15)
একইভাবে শুধু NOR ব্যবহার করে XNOR তৈরি করতে হলে xy এবং xy এর ভেতরকার বুলিয়ান গুণকে ডি মরগান সূত্র ব্যবহার করে যোগে রূপান্তর করতে হবে। XNOR এর লজিক xy + xy অপরিবর্তিত রেখে দ্বৈত পরিপুরক করা হলে আমরা পাই :
xy + xy = xy + y দ্বৈত পরিপুরক এবারে ডি মরগান সূত্র ব্যবহার করে যোগকে গুণে রূপান্তর
করতে হবে।
= x + y + x + y ডি মরগান সুত্র
দ্বৈত পরিপূরক করে আরো সহজে লেখা যায় :
= x + 7 + x + y দ্বৈত পরিপুরক। এবারে সার্কিটটি এঁকে ফেলা যাবে (চিত্র 3.15)।
বুলিয়ান এলজেবরা ব্যবহার করে ডিজিটাল ইলেকট্রনিক্স আলোচনা করতে গিয়ে এখন পর্যন্ত নানা ধরনের গেট আলোচনা করা হয়েছে। এখন আ একাধিক সেট ব্যবহার করে তৈরি করা নানা ধরনের প্রয়োজনীয় ডিজিটাল সার্কিট সম্পর্কে আলোচনা করব। উল্লেখ্য যে আমাদের দৈনন্দিন প্রয়োজনে আলাদাভাবে পেট ব্যবহার করে এই 0 00001001 0 সার্কিট তৈরি করতে হয় না, কারণ প্রায় সবগুলোই কোনো না কোনোভাবে ইন্টিগ্রেটেড সার্কিট হিসেবে পাওয়া যায়।
কত নম্বর লাইনটিকে উজ্জীবিত করা এনকোডার ও ডিকোডার এরকম দুটো Ao Ay A2 As As As As A ডিজিটাল সার্কিট। এনকোডারে ইনপুট হিসেবে থাকে বেশ কয়েকটি ইনপুট লাইন এবং এই ইনপুট লাইনগুলোর যে কোনো একটিকে সিগন্যাল দিয়ে উজ্জীবিত করা হয় (অর্থাৎ শুধু সেই লাইনটির মান 1 অন্য সবগুলোর 0 ) । হয়েছে সেই সংখ্যাটি এনকোডারে বাইনারি সংখ্যা হিসেবে আউটপুটে দেখানো হয়। ধরা যাক ইনপুটে আটটি লাইন আছে, (Ao থেকে A7) এই আটটি লাইনের যে কোনো একটিতে ইনপুট দেওয়া হবে। কত নম্বর লাইনে (0 থেকে 7) ইনপুট দেওয়া হয়েছে সেটি জানানোর জন্য আউটপুটে তিনটি লাইনের প্রয়োজন (Qo, Q1 এবং Q2)। আমরা প্রথমেই এই আটটি ইনপুট এবং তিনটি আউটপুটের এনকোডারের সত্যক সারণী বা ট্রুথ টেবিলটি তৈরি করে নেই (চিত্র 3.16)। যেমন : A2 ইনপুট লাইনে সিগনাল দেওয়া হলে আমরা আউটপুটে বাইনারি 010 বা 2 সংখ্যাটি পাই কিংবা As ইনপুট লাইনে সিগনাল দেওয়া হলে আমরা আউটপুটে বাইনারি 101 বা 5 সংখ্যাটি পাই । Q2=A4+Ag+Ag+A,
সত্যক সারণীটি যদি ঠিকভাবে লেখা হয়ে থাকে তাহলে তার জন্য সার্কিট তৈরি করা মোটেও কঠিন নয়। সত্যক সারণীটির দিকে তাকালেই আমরা দেখতে পাব, Qo লাইনে 1 পেতে হবে যখন A1, A3, As এবং A লাইনগুলোতে ইনপুট 1 দেয়া হয়েছে। কাজেই আমরা বলতে পারব, A1, A3, As এবং A, লাইন চারটি একটি OR গেটের ইনপুটের সাথে সংযুক্ত করতে হবে এবং তার আউটপুট হবে Qo। একইভাবে বলতে পারি Qu লাইনটি 1 দেবে যখন A2, A3, As এবং A, লাইনগুলোতে ইনপুট 1 দেয়া হয়েছে। কাজেই একটা OR গেটের ইনপুট হিসেবে A2, A3, As এবং A, হিসেবে সংযুক্ত করা হলে তার আউটপুট হবে Qa। একইভাবে A4, As, As এবং A, একটি OR গেটের ইনপুটের সাথে সংযুক্ত করলে তার আউটপুট হবে Q)। (চিত্র 3.16)
কাজেই এবারে আমরা খুব সহজেই ৪ (আট) ইনপুট ও 3 আউটপুটের এনকোডারের সার্কিটটি তৈরি করতে পারি। তোমরা ইচ্ছা করলেই পরীক্ষা করে দেখতে পার। A2 লাইনে ইনপুট 1 দেয়া হলে আউটপুটে বাইনারি 2 সংখ্যা পাবে কিংবা A, লাইনে ইনপুট 1 দেয়া হলে বাইনারি 7 সংখ্যা পাবে।
সমস্যা : আমরা সার্কিটে দেখতে পাচ্ছি Ao ইনপুট লাইনটি ব্যবহার না করেই সার্কিটটি তৈরি করেছি। এটি | কীভাবে সম্ভব?
ডিকোডার সার্কিট এনকোডারের ঠিক বিপরীত কাজটুকু করে। এনকোডারে আলাদা আলাদা লাইনের সিগন্যালকে এনকোড করে আউটপুটে বাইনারি সংখ্যা হিসেবে প্রদান করেছে। ডিকোডার ইনপুটে বাইনারি কোনো সংখ্যা দেয়া হলে আউটপুটে সেই সংখ্যার লাইনটিতে একটি সিগন্যাল 1 দেওয়া হয়, অন্যগুলো ০ থেকে যায়। বিষয়টি বোঝার জন্য আমরা প্রথমেই ডিকোডারের সত্যক সারণী বা ট্রুথ টেবিলটি প্রস্তুত করি। বোঝাই যাচ্ছে, এনকোডারে যেগুলো ছিল আউটপুট লাইন, ডিকোডারে সেটা হবে ইনপুট লাইন এবং এনকোডারে যেগুলো ছিল ইনপুট লাইন ডিকোডারে সেগুলো হবে আউটপুট লাইন। ট্রুথ টেবিলে প্রথমে তিনটি ইনপুট লাইন (Ao, A1, A2) এবং তার পরে আটটি আউটপুট লাইন (Co, Q1, Q2, 3, 4, Os, Qs, Q7) দেখানো হয়েছে (চিত্র 3.17)।
এটাকে কার্যকর করানোর জন্য ঠিক কী ধরনের সার্কিট ব্যবহার করতে হবে সেটা আমরা সত্যক সারণীটির দিকে তাকালেই বুঝতে পারব। যেহেতু এখানে Qo থেকে Q7 এই আটটি আউটপুট রয়েছে কাজেই এই আটটি আউটপুটের জন্য আটটি তিন ইনপুটের AND গেট ব্যবহার করতে হবে। 3.17 চিত্রে সার্কিটটা দেখানো হয়েছে, প্রত্যেকটি তিন ইনপুটের AND গেটে Ao, A1, A2 এর সিগন্যাল দেয়া হয়েছে, কোনো কোনো সময় সরাসরি, কোনো কোনো পরিবর্তন করে। যেমন- প্রথম আউটপুটের জন্য Ao, A2, A2 সিগন্যাল (0,0,0) সরাসরি AND গেটে দেয়া হলে সেটি Qo আউটপুটে 1 দেবে না। আমরা জানি AND গেটের আউটপুটে 1 পেতে হলে ইনপুটের সব 1 হতে হয়। কাজেই Ao, A1, A2 এর সিগন্যাল (0,0,0) এর তিনটিকেই NOT করে দেয়া হলেই সেটি আউটপুটে 1 দেবে, সার্কিটে সেটা করা হয়েছে। ঠিক সেভাবে Q3 তে পজেটিভ সিগন্যাল পেতে হলে তার জন্য নির্দিষ্ট AND গেটের ইনপুটে প্রথমটি (Ao) NOT করে অন্য দুটি সরাসরি দিতে হবে। একইভাবে বলা যায় Q এর জন্য নির্ধারিত AND গেটটিতে Ao, A1, A2 এর সিগন্যাল যেহেতু সবই 1, তাই সাথে মিলিয়ে সার্কিটটি দেখে নাও।
আমরা এবারে লজিক গেট দিয়ে তৈরি করা আরো একটি ডিজিটাল সার্কিটের কথা বলব যেটি বাইনারি সংখ্যা যোগ করতে পারে। আমরা ইতোমধ্যে জেনে গেছি যে সঠিকভাবে বাইনারি সংখ্যা যোগ করতে পারলেই প্রয়োজনে সেই একই সার্কিট ব্যবহার করে বিয়োগ, গুণ এবং ভাগ করতে পারব।
XOR লজিক গেটটি আলোচনা করার সময় আমরা বাইনারি যোগ 1 + 1 = 10 সংখ্যাটিতে বলেছিলাম এর মাঝে ডানপাশের বিটটি যোগফল এবং বাম পাশের (হাতে থাকা) বিটটি ক্যারি (carry)। যোগফলের বিটটি XOR গেট দিয়ে পাওয়া যায় কিন্তু ক্যারি বিটটি কীভাবে পাওয়া যায় সেটি তখন 0 1 1 0 আলোচনা করা হয়নি। সেটি খুবই সহজ একটি AND গেট দিয়ে পাওয়া যেতে পারে। কাজেই আমরা একটি বিটের সাথে অন্য একটি বিটের বাইনারি যোগ নিচের সার্কিট দিয়ে পেতে পারি (চিত্র 3.18)
এই ধরনের সার্কিটের নাম হচ্ছে হাফ অ্যাডার, কারণ এটি পূর্ণাঙ্গ বাইনারি যোগের সার্কিট নয়, এটি আংশিকভাবে যোগ করতে পারে। আগের ধাপ থেকে ক্যারি বিট হিসেবে 1 চলে এলে তখন যোগ করতে পারে না। প্রকৃত বাইনারি যোগে দুটি বিট যোগ করতে হলেও মাঝে মাঝেই এর আগের দুটি বিটের যোগ থেকে ক্যারি বিট চলে আসে, তখন দুইটি নয়, তিনটি বিট যোগ করার প্রয়োজন হতে পারে। নিচে দুটি বাইনারি সংখ্যার যোগফল দেখানো হয়েছে।
নিজে কর : মৌলিক গেট দিয়ে হাফ অ্যাডার তৈরি কর
যদিও দুটি করে বিট যোগ করা হয়েছে কিন্তু তীর চিহ্ন দিয়ে দেখানো বিট দুটির বেলায় আগের ধাপ থেকে 1 বিটটি এসেছে বলে আসলে তিনটি বিট যোগ করা হয়েছে। আমরা অন্যভাবেও বলতে পারি, প্রতিবারই আমরা তিনটি বিট যোগ করেছি, কিন্তু অন্য ধাপগুলোতে ক্যারি বিটের মান ছিল । কাজেই এবারে আমরা x, y এবং CIN, এই তিনটি ইনপুটের জন্য ট্রুথ টেবিলটি লিখে ফেলতে পারি। (টেবিল 3.6) এখানে x, y হচ্ছে বাইনারি যোগের প্রদত্ত সংখ্যার বিট এবং Cin হচ্ছে আগের ধাপ থেকে আসরা ক্যারি বিটের মান। ট্রুথ টেবিলে আউটপুট দুটি, S এবং Cour S হচ্ছে দুটি বিটের যোগফল, Cour হচ্ছে ক্যারি বিট যেটি পরের ধাপে CIN হিসেবে যুক্ত হয়।
ট্রুথ টেবিলের দিকে তাকিয়ে আমরা দেখতে পাচ্ছি x, y এবং Cin -এর সম্ভাব্য আটটি ভিন্ন ভিন্ন ইনপুটের ভেতর চারটি ক্ষেত্রে যোগফল (S) এবং চারটি 1 1 1 1 1 1 ক্ষেত্রে ক্যারি (Cour) আউটপুটের মান 1 হতে হবে। ডিকোডারের বেলায় আমরা যেভাবে AND গেটের আউটপুট 1 পাওয়ার জন্য NOT গেট দিয়ে ইনপুট পরিবর্তন করেছিলাম, এখানেও আমরা হুবহু একই পদ্ধতি গ্রহণ করতে পারি। 3.19 চিত্রে সেভাবে সার্কিটটি এঁকে দেখানো হলো। আমাদের আউটপুট দুটি (S এবং Cour) পাওয়ার জন্য AND গেটগুলোর OR গেট দিয়ে একত্র করে নেয়া হয়েছে। তবে তোমরা একটু অবাক হয়ে ভাবতে পার, s এবং Cour দুটির লজিক একই ধরনের থাকার পরও Cour -এর জন্য সার্কিটটি
উদাহরণ : S এর জন্য আউটপুটটি মৌলিক পেট দিয়ে আরও সরল করা সম্ভব না। তবে Cour -এর সমীকরণটি আরও সরল করা সম্ভব। তোমরা কি আরও সরল করে দেখাতে পারবে? উত্তর : যেহেতু A + A = A, তাই আমরা সর্বশেষ টার্স xyult অন্য তিনটি টার্মের প্রত্যেকটার সাথে যোগ করতে পারি :
COUT = (xyCIN+ xyCIN) + (xYCIN +XYCIN) + (xYCIN +XYCIN) এখন আমরা এভাবে সাজাতে পারি
Cour = xy (CIN + Cis) + yCIN (X + x) + xCIN(7 + y)
যেহেতু A + Ā = 1, আমরা লিখতে পারি : Cour = xy + yCIN + x CIN
দেখতে পাচ্ছ পুরো সার্কিটটি অনেক সরল হয়ে গেছে, কিন্তু এটি সঠিক আউটপুট দেবে, ইচ্ছা করলে সেটি পরীক্ষা করে দেখতে পার।
| নিজে কর : দুইটি অর্থযোগ (হাফ অ্যাডার) বর্তনী দিয়ে একটি পূর্ণযোগ (ফুল অ্যাডার) বর্তনী বানানো সম্ভব | কী? উত্তরের সাপেক্ষে যুক্তি দেখাও।
দুটি বিট যোগ করার এই সার্কিটটিকে ফুল এডার বলে । যেকোনো সত্যকার কাজের সার্কিটে অনেক বিট যোগ করতে হয়, কিন্তু প্রত্যেকটি বিটের জন্য যেন এই পুরো সর্কিটটি আঁকতে না হয় সেজন্য আমরা পুরো সার্কিটটিকে একটা ব্লক ডায়াগ্রাম দিয়ে দেখিয়েছি, এখানে শুধু ইনপুট এবং আউটপুট লাইনগুলো দেখানো হয়েছে। চার বিটের একটি বাইনারি যোগের জন্য কীভাবে চারটি ফুল এডার সার্কিট যোগ করতে হবে সেটি ব্লক ডায়াগ্রাম গুলো যুক্ত করে দেখানো হলো। (চিত্র 3.20)
লক্ষ কর, প্রথম ব্লক ডায়াগ্রামে CIN1 = 0 কারণ প্রথম দুটি বিট যোগ করার সময় আগের কোনো ধাপ থেকে কিছু CIN আসা সম্ভব নয়। উল্লেখ্য যে, চার বিট যোগ করতে হলে যোগফল সঠিকভাবে দেখাতে হলে কিন্তু সর্বশেষ Cour -এর জন্য পঞ্চম বিট প্রয়োজন হয়।
আমরা এতক্ষণ পর্যন্ত যে কয়টি সার্কিট তৈরি করতে শিখেছি তার প্রত্যেকটিরই একটি বিশেষত্ব রয়েছে, সেটি হচ্ছে যতক্ষণ ইনপুটে সঠিক সিগন্যাল দেওয়া হবে ততক্ষণ আউটপুটে সঠিক সিগন্যাল পাব। ইনপুটে সঠিক সিগন্যাল না থাকলে আউটপুটে কোনো বিশ্বাসযোগ্য মান থাকবে না।
কিন্তু আমাদের অনেক সময়েই একটি সার্কিটে কোনো একটি মান সংরক্ষণ করতে হয়, আমরা সেটাকে মেমোরি বলে থাকি। এখন আমরা এ ধরনের একটি সার্কিটের কথা বলব যেখানে একটি ইনপুট দিয়ে সেই ইনপুটের মানটিকে সংরক্ষণ করা সম্ভব। এই ধরনের সার্কিটকে বলে ফ্লিপফ্লপ। 3.21 চিত্রে একটি ফ্লিপফ্লপের সার্কিট দেখানো হলো। এখানে Q একটি আউটপুট এবং Q তার পূরক। এবারে আমরা এই ফ্লিপ ফ্লপের সত্যক সারণী বা ট্রুথ টেবিলটি লেখার চেষ্টা করি। NAND গেটের জন্য যেকোনো একটি ইনপুট ০ হলে আউটপুট 1 হয়। তাই ইনপুট x এবং y দুটোই যদি হয় (অন্য ইনপুটের মান যাই হোক না কেন) দুটো NAND গেটের আউটপুট Q এবং Q দুটোর মানই হবে 1। কিন্তু আমরা যেহেতু একটিকে Q অন্যটিকে হিসেবে অভিহিত করছি, অর্থাৎ একটি 1 হলে অন্যটিকে অবশ্যই ০ হতে হবে, কাজেই দুটোই 1 হওয়া সঠিক নয়। তাই আমরা ধরে নেব ইনপুট x এবং y দুটোই কখনো একসাথে ০ করা হৰে না, অর্থাৎ এটি গ্রহণযোগ্য ইনপুট নয়। তবে x = 0 এবং y = 1 হলে Q এবং Q আউটপুট দুটি যুক্তিসঙ্গতভাৰে যথাক্ৰমে 1 এবং 0 হবে। আবার ইনপুট x = 1 এবং y = 0 হলে এর বিপরীত ব্যাপারটি ঘটে, অর্থাৎ তখন Q = 0 এবং Q = 1 পাওয়া যায়। তোমরা অবশ্যই এটি পরীক্ষা করে নিশ্চিত হয়ে নাও । তবে দুটোই 1 হলে সবচেয়ে চমকপ্রদ বিষয়টি ঘটে। তোমরা নিজেরাই পরীক্ষা করে দেখতে পারো যে তাহলে Q এবং Q এর আউটপুট যথাক্রমে 1 এবং 0 অথবা 0 এবং 1 এই দুটোই হতে পারে। এটি গাণিতিক কোনো ব্যাপার নয়, পুরোপুরি বাস্তব একটি সার্কিট, আমরা তাহলে কোন আউটপুটটি পাব? উত্তরটি কিন্তু বেশ সহজ। এটি নির্ভর করে x = 1 এবং y = 1 অবস্থাটির আগের অবস্থা কী। যদি ঠিক আগের অবস্থা x = 0 এবং y = 1 হয়ে থাকে তাহলে Q হবে 1 (এবং Q হবে তার বিপরীত অর্থাৎ D) এবং যদি আগের অবস্থা x = 1 এবং y = 0 হয়ে থাকে তাহলে Q হবে (এবং Q হবে তার বিপরীত অর্থাৎ 1) খ টেবিলে সেটা এভাবে দেখানো যেতে পারে :
আমরা ইচ্ছা করলে এভাবেও বলতে পারি, x এবং y দুটোকেই 1 করে দিয়ে আমরা x এর মান Q এ এবং এর মান Q এর মাঝে সংরক্ষণ করে রেখেছি। কাজেই এই স্লিপাম্প ব্যবহার করার সাধারণ নিয়ম হচ্ছে x এবং y দুটোকে সবসময়েই 1 হিসেবে রাখা এবং প্রয়োজন অনুযায়ী শুধু ক্ষুদ্র একটি সময়ের জন্য : অথবা y কে করা। x কে O করা হচ্ছে Q হবে 1 এবং y কে 0 করা হচ্ছে Q হবে (এবং Q হবে Q এর বিপরীত)।
এটি সাধারণত কীভাবে করা হয় সেটি 3.22 চিত্রের সার্কিটে দেখানো হলো। D ইনপুটটি x এবং y এর মাঝে সরাসরি না দিয়ে দুটি বাড়তি NAND গেট দিয়ে দেয়া হচ্ছে। নিচের NAND গেটের আগে একটি ইনভার্টার দেওয়ার কারণে সবসময়েই x এবং y একটি 1 অন্যটি তার বিপরীত ০ সিগন্যাল পেয়ে থাকে। তবে যতক্ষণ CLK ইনপুটটি ০ থাকবে দিয়ে x এবং y ততক্ষণ D ইনপুটের মান এই বাড়তি NAND গেটের ভেতর পর্যন্ত পৌঁছাতে পারে না। ইনপুটের মান যাই থাকুক না কেন, CLK ইনপুটটি D হলে x এবং v ইনপুটের মান সবসময় 1 থাকবে। D ইনপুটের মান ফ্লিপফ্লপে লোড করতে হলে অল্প সময়ের জন্য CLK ইনপুটটির মান 1 করতে হয়। মানটি লোড করার পর সেটি আবার 0 করে ফেলা হয়।
ধরা যাক D এর মান 1 করে একটি ক্ষুদ্র সময়ের জন্য CLK এর মান 1 করা হলো (ইলেক্ট্রনিক্সের ভাষায় *একটি CLK পালস দেওয়া হলো”)। তাহলে সেই পালসের সময়টুকুতে x হবে D, y হবে 1 কাজেই Q হবে 1 (স্বাভাবিকভাবে Q-এর মান হবে Q-এর বিপরীত, অর্থাৎ 0) পালসটুকু শেষ হওয়ার পর যেহেতু x এবং y দুটোর মানই আবার 1 হয়ে যাবে, তাই স্লিপফ্লপের নিয়ম অনুযায়ী Q-এর মান 1 হিসেবে সংরক্ষিত থেকে যাবে। অর্থাৎ মনে হবে D তে যে 1 মান দেওয়া হয়েছে সেটি CLK পালস দিয়ে Q তে লোড করা হয়েছে। ঠিক একইভাবে D তে o দিয়ে একটি CLK পালস দেওয়া হলে Q হবে । এবং মনে হবে D-এর ও সিগন্যালটি Q তে লোভ করা হয়েছে।
এই ধরনের সার্কিটে নাম DQ । 3.23 চিত্রে বিষয়টি ব্যাখ্যা করা হয়েছে, সহজ করার জন্য Q দেখানো হয়নি। এক কথায় বলা যায়, D এর মানটি একটি পালস দিয়ে Q-এ নিয়ে আসা হয়, মানটি সেখানে সংরক্ষিত থাকে, D-এর মান পরিবর্তন করা হলেও Q-এর মানের পরিবর্তন হয় না। শুধু আরেকটি CLK পালস দিয়ে D-এর নতুন মান Q তে লোড করা যাবে। এই ধারণাটি নিয়ে তোমাদের মাঝে যেন কোনো
চিত্র 3.23 : এখানে D থেকে Q তে 1 লোড করার পদ্ধতিটি দেখানো হচ্ছে। শুরুতে D তে 1 দেওয়ার পরও Q- এর মানের কোনো পরিবর্তন নেই। পরের ধাপে যখন CLK-এ একটি পালস (1) দেওয়া হলো তখন D-এর মানটি Q তে চলে গেল। শেষ ধাপে CIK-এর মান আবার o করার পর D তে যে মানই দেয়া হোক Q-এর মানের কোনো পরিবর্তন হবে না।
বিভ্রান্তি না থাকে কারণ এর পরের সব কয়টি সার্কিটে আমরা DQ ফ্লিপফ্লপ ব্যবহার করব।
নিজে কর : দুটি NAND গেট ব্যবহার না করে দুটি NOR গেট ব্যবহার করে একটি ফ্লিপফ্লপ তৈরি করা হলে তার ট্রুথ টেবিল কেমন হবে?
নিজে কর : পাশের ছবিতে দেখানো গেটটির ইনপুট ০ হলে আউটপুট কী হবে? ইনপুট 1 হলে আউটপুট কী হবে? (উল্লেখ্য একটি গেটের ইনপুটে সিগন্যাল দেওয়ার সাথে সাথে আউটপুটে মান পাওয়া যায় না, আউটপুটে মান আসতে প্রায় 10ns-এর মতো সময় দরকার হয়। এই পদ্ধতিতে একাধিক গেট ব্যবহার করে খুব সহজে CLK তৈরি করা যায়।)
প্যারালাল লোড রেজিস্টার
3.24 চিত্রে চারটি DQ ফ্লিপফ্লপ পাশাপাশি বসিয়ে একটি সার্কিট তৈরি করা হয়েছে। যেহেতু একই সাথে চারটি ফ্লিপক্ষপে CLK পালস দেওয়া হয়, তাই এই চারটি ফ্লিপফ্লপ একই সাথে চার বিট তথ্য সংরক্ষণ করতে পারে। যদি Ao, A1, A2 এবং A3 তে চার বিট তথ্য দেওয়া হয় তাহলে সেই চার বিট তথ্য CLK পালস দেওয়ার সাথে সাথে lo, 11, 12 এবং 13 তে সংরক্ষিত হয়ে যাবে। তখন A1, A2 এবং A3-এর বিটগুলো পরিবর্তিত হলেও 10, 11, 12 এবং 13 তে সংরক্ষিত তথ্যের কোনো পরিবর্তন হবে না। শুধু নতুন একটি CLK পালস দেওয়া হলেই পরিবর্তিত Ao, A1, A2 এবং A3 এর মান lo, I1, I2 এবং 13 তে লোড হবে। ফ্লিপফ্লপের সংখ্যা বাড়িয়ে পুরো এক বাইট কিংবা কয়েক বাইট তথ্য একসাথে রাখা সম্ভব।
এই ধরনের সার্কিটকে প্যারালাল লোড রেজিস্টার বলে।
শিফট রেজিস্টার
প্যারালাল লোড রেজিস্টারে DQ ফ্লিপফ্লপগুলোতে সিগন্যাল একই সাথে লোড করা হয়। ভিন্ন আরেক ধরনের ফ্লিপফ্লপ আছে যেখানে ফ্লিপফ্লপগুলোর আউটপুট Q অন্যটির ইনপুট D-এর সাথে সংযুক্ত করে প্রতি ক্লক পালসে এক ফ্লিপফ্লপের সিগন্যাল পরের ফ্লিপফ্লপে পাঠানো যায়। এই ধরনের রেজিস্টারকে শিফট রেজিস্টার বলে। শিফট রেজিস্টারের ইনপুটে সিরিয়াল ডেটা দিয়ে আউটপুটে প্যারালাল ডাটা পাওয়া যায়৷ 3.25 চিত্রে একটি শিফট রেজিস্টারের সার্কিট দেখানো হলো।
কাউন্টার এক ধরনের ডিজিটাল সার্কিট যেটি গণনা করতে পারে। আমরা DQ ফ্লিপফ্লপ দিয়ে খুব সহজে কাউন্টার তৈরি করতে পারি। DQ ফ্লিপফ্লপের আউটপুট Q এবং Q দুটোই থাকে তবে যেহেতু রেজিস্টার তৈরি করার সার্কিটগুলোতে ( ব্যবহার করার দরকার হয়নি, তাই সার্কিটে ইচ্ছা করে ্ টি দেখানো হয়নি। কাউন্টার তৈরি করার সময় Q এবং Q দুটো আউটপুটেরই প্রয়োজন হবে, তাই 3.26 চিত্রে দুটোই দেখানো হয়েছে। তবে সার্কিটটি সহজে আঁকার জন্য Q টি উপরে এবং Q টি নিচে আঁকা হলো। একটি খুবই সহজ কাউন্টারের সার্কিট 3.26 চিত্রে দেখানো হয়েছে।
এখানে যেটা সবচেয়ে গুরুত্বপূর্ণ সেটা হচ্ছে সব ফ্লিপফ্লপে কিন্তু একই CLK পালস দেওয়া হচ্ছে না। প্রথম ফ্লিপফ্লপটি আসল CLK পালস পেলেও অন্য ফ্লিপফ্লপগুলো তার আগের ফ্লিপফ্লপের আউটপুট Q-এর সিগন্যালকে তার CLK পালস হিসেবে ব্যবহার করছে।
সার্কিটে দেখানো না হলেও প্রথমে সবগুলো ফ্লিপফ্লপ রিসেট করে নিতে হবে যেন সব Q-এর মান হয় ০ (কাজেই সবগুলো Q-এর মান হয় 1)। এবারে প্রতি CLK পালসে প্রথম ফ্লিপফ্লপের Q-এর মান D-এর মধ্য দিয়ে Q তে লোড হবে।
যেহেতু D-এর মানের বিপরীত মানটি অর্থাৎ Q-এ লোড হয়, তাই প্রথম ফ্লিপফ্লপে Q-এর মান একবার 0 এবং পরের বার 1 হতে থাকবে। পাশের টেবিলে সেটা দেখানো হয়েছে। (লক্ষ্য কর, টেবিলে প্রথম ৭০-এর মান সবচেয়ে ডানদিকে বসিয়ে অন্যগুলো ক্রমান্বয়ে তার বামে বসানো হয়েছে) পরের ফ্লিপফ্লপ একই ব্যাপারে ঘটবে তবে যেহেতু Qo কে Qi এর ক্লক হিসেবে ব্যবহার করা হচ্ছে তাই দ্বিতীয় ফ্লিপফ্লপের Q আউটপুট পরিবর্তিত হবে প্রকৃত CLK-এর দুটি পালস পরে পরে যেটি টেবিলে দেখানো হয়েছে। একইভাবে পরের ফ্লিপফ্লপের আউটপুট পরিবর্তিত হবে প্রকৃত CLK-এর চার পালস পরে পরে ।।
টেবিলে প্রথম ৭০-এর মান সবচেয়ে ডানদিকে বসিয়ে 91, 92, 93 গুলো ক্রমান্বয়ে তার বামে বসানোর কারণে আমরা টেবিলের দিকে তাকালেই দেখতে পাব q3, 92 91 90 আসলে একটি কাউন্টারের আউটপুট যেটি ক্লক পালসকে বাইনারি সংখ্যা হিসেবে গুণছে। এই ধরনের কাউন্টারকে বলা হয় রিপল কাউন্টার। রিপল কাউন্টার ছাড়াও আরো নানা ধরনের কাউন্টার রয়েছে যেগুলো নানাভাবে গণনা করতে পারে।
নিজে কর : এই তিনটি ফ্লিপফ্লপের Qi, Q, এবং Q3-এর মান যথাক্রমে 0 1 এবং 1, তিনটি ক্লক পালসের পর Q,
Q এবং Q-এর মান কত হবে?